package proyecto.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collection;
import javax.sql.DataSource;
import proyecto.excepcion.DAOExcepcion;
import proyecto.modelo.ClaseFormacion;

public class ClaseFormacionDAOImpl extends BaseDAO implements ClaseFormacionDAO {

    private DataSource dataSource;

    public DataSource getDataSource() {
        return dataSource;
    }

    public void setDataSource(DataSource dataSource) {
        this.dataSource = dataSource;
    }

    public Collection<ClaseFormacion> listar() throws DAOExcepcion {
        Collection<ClaseFormacion> lista = new ArrayList<ClaseFormacion>();
        Connection con = null;
        PreparedStatement stmt = null;
        ResultSet rs = null;
        try {
            con = dataSource.getConnection();
            String query = "SELECT TIPEST_CODIGO, TIPEST_DESCRIPCION FROM claseformacion";
            stmt = con.prepareStatement(query);
            rs = stmt.executeQuery();
            while (rs.next()) {
                ClaseFormacion vo = new ClaseFormacion();
                vo.setTipEst_Codigo(rs.getInt("TIPEST_CODIGO"));
                vo.setTipEst_Descripcion(rs.getString("TIPEST_DESCRIPCION"));
                lista.add(vo);
            }

        } catch (SQLException e) {
            System.err.println(e.getMessage());
            throw new DAOExcepcion(e.getMessage());
        } finally {
            this.cerrarResultSet(rs);
            this.cerrarStatement(stmt);
            this.cerrarConexion(con);
        }
        return lista;
    }
}
